RPC (Remote Procedure Call) হল একটি প্রোগ্রামিং কৌশল যা একটি প্রক্রিয়াকে (অথবা ক্লায়েন্ট) দূরে অবস্থিত একটি সার্ভারে অবস্থিত অন্য একটি প্রক্রিয়াকে (অথবা সার্ভার) একটি ফাংশন বা মেথড কল করতে দেয়। RPC সিস্টেমগুলো ব্যবহারকারীর অভিজ্ঞতা সহজতর করার জন্য নেটওয়ার্কের মাধ্যমে ফাংশন কল করে, যাতে ব্যবহারকারী স্থানীয়ভাবে কাজ করছে মনে হয়।
নিচে Python-এ RPC প্রোগ্রামিংয়ের একটি উদাহরণ দেওয়া হল, যেখানে xmlrpc লাইব্রেরি ব্যবহার করা হয়েছে। এটি একটি সহজ RPC কৌশল, যা XML (Extensible Markup Language) ব্যবহার করে ডেটা বিনিময় করে।
উদাহরণ: Python এ XML-RPC
১. সার্ভার কোড
from xmlrpc.server import SimpleXMLRPCServer
# সার্ভার ক্লাস তৈরি করা
class MyMath:
def add(self, x, y):
return x + y
def subtract(self, x, y):
return x - y
# সার্ভার তৈরি করা
server = SimpleXMLRPCServer(("localhost", 8000))
print("Server is running on port 8000...")
# সার্ভিস রেজিস্টার করা
server.register_instance(MyMath())
# সার্ভার চালানো
server.serve_forever()
সার্ভার কোডের ব্যাখ্যা
- সার্ভার তৈরি:
SimpleXMLRPCServerব্যবহার করে একটি সার্ভার তৈরি করা হয় যা লোকালহোস্টে 8000 পোর্টে চলবে। - মেথড তৈরি:
MyMathক্লাসেaddএবংsubtractমেথড দুটি তৈরি করা হয়েছে, যা দুইটি সংখ্যা যোগ ও বিয়োগ করবে। - সার্ভিস রেজিস্টার: সার্ভারের ইনস্ট্যান্সের সাথে
MyMathক্লাসের ইনস্ট্যান্স রেজিস্টার করা হয়। - সার্ভার চালানো:
serve_forever()মেথড ব্যবহার করে সার্ভার চলমান রাখা হয়।
২. ক্লায়েন্ট কোড
import xmlrpc.client
# সার্ভারের সাথে সংযোগ স্থাপন
server = xmlrpc.client.ServerProxy("http://localhost:8000/")
# ফাংশন কল করা
result_add = server.add(5, 3)
result_subtract = server.subtract(10, 4)
print(f"Addition Result: {result_add}") # Output: Addition Result: 8
print(f"Subtraction Result: {result_subtract}") # Output: Subtraction Result: 6
ক্লায়েন্ট কোডের ব্যাখ্যা
- সার্ভারের সাথে সংযোগ:
ServerProxyব্যবহার করে সার্ভারের URL নির্দেশ করে একটি ক্লায়েন্ট তৈরি করা হয়। - ফাংশন কল:
addএবংsubtractমেথড কল করে সার্ভারের ফাংশনগুলোকে কার্যকর করা হয়। - ফলাফল প্রদর্শন: সার্ভার থেকে প্রাপ্ত ফলাফলগুলি প্রিন্ট করা হয়।
প্রোগ্রাম চালানো
- প্রথমে সার্ভার কোডটি চালান। এটি লোকালহোস্টে 8000 পোর্টে চলবে।
- পরে ক্লায়েন্ট কোডটি চালান। ক্লায়েন্ট সার্ভারের ফাংশনগুলোকে কল করে ফলাফল দেখাবে।
উপসংহার
RPC প্রোগ্রামিং একটি কার্যকরী কৌশল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে সহজে তথ্য বিনিময় করতে সাহায্য করে। এটি ডিস্ট্রিবিউটেড সিস্টেমের ক্ষেত্রে বিশেষভাবে উপকারী, যেখানে ফাংশনগুলো দূরবর্তীভাবে কল করা হয়। Python এর xmlrpc লাইব্রেরি ব্যবহার করে RPC বাস্তবায়ন করা সহজ এবং কার্যকর।